package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import bean.Cronometro;
import vista.VistaJugador;
import modelo.JugadorDAO;
import modelo.Jugador;
import modelo.Persona;


public class ControladorJugador implements ActionListener {
	
	private VistaJugador vistajugador;
	private Cronometro tiempo;
	private int categoria;
	
	public ControladorJugador(Cronometro time, int categ) {
		super();
		this.tiempo = time;
		this.categoria = categ;
		this.vistajugador = new VistaJugador(tiempo);
		this.vistajugador.setLocation(480,210);
		this.vistajugador.setVisible(true);	
		this.vistajugador.addListener(this);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		String actionCommand = e.getActionCommand();
		if (actionCommand.equals("Incluir")) {
			registrarJugador();
		}		
		else if (actionCommand.equals("Cancelar")) {
			vistajugador.borrarDatos();
			vistajugador.dispose();
		}
	}
	
	private void registrarJugador(){
	  	try
		{
	    	if(vistajugador.getCedula().equals("") || 
	    			vistajugador.getNombre().equals("") ||
	    			vistajugador.getApellido().equals(""))
	    	   //Deben estar todos los campos llenos para poder incluir el jugador
	    		vistajugador.mostrarMensaje("Debe llenar todos los datos para poder inscribir un jugador");
	    	
	    	else
	    	{
	    		JugadorDAO jugadorDAO = new JugadorDAO(0);
	    		Jugador j = new Jugador(vistajugador.getNombre(),vistajugador.getApellido(), tiempo.getContador(), jugadorDAO.dificultad(categoria));		    
		    	jugadorDAO.registrarJugador(j);
		    	vistajugador.mostrarMensaje("El Jugador fue incluido con exito");
		    	vistajugador.borrarDatos();
		    	vistajugador.dispose();
		    	new ControladorPuntaje();
	    	}
		}catch(Exception e)
		{
			vistajugador.mostrarMensaje("No se pudo registrar el Jugador, verifique que los datos sean correctos");
			vistajugador.borrarDatos();
		}
	}

	public Cronometro getTiempo() {
		return tiempo;
	}
	
	

}